package com.zzy.system.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zzy.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 订单实体类，用于表示订单的各种属性信息。
 */
@Data
public class PurchaseOrder extends BaseEntity {
    //主键 自增
    private Integer purchaseOrderId;
    private static final long serialVersionUID = 1L;
    // 创建时间，使用Date类型来表示日期时间信息
    private Date createTime;
    // 采购单id，使用String类型存储，通常是一个唯一标识符
    private String purchaseSheetId;
    // 站点id，同样为String类型，用于标识具体的站点
    private String stationId;
    // 采购单据状态，使用Int类型，允许的值为2（已提交）和3（未提交）
    private int status;
    // 采购单据来源，Int类型，允许的值为0（采购任务）、1（小程序/app）、2（手动新建）
    private int source;
    // 提交时间，LocalDateTime类型，记录采购单提交的具体时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private LocalDateTime submitTime;
    // 供应商id，String类型，用于唯一标识供应商
    private String supplierId;
    // 供应商名称，String类型，存储供应商的具体名称
    private String supplierName;
    // 采购任务数，Int类型，代表此次采购涉及的任务数量
    private int purchaseTaskNum;
    // 采购金额，BigDecimal类型，用于记录此次采购的总金额
    private BigDecimal purchaseAmount;
    // 入库时间，Date类型，记录采购货物入库的时间点
    private Date inStockTime;
    // 采购员，String类型，记录负责此次采购的人员姓名
    private String purchaser;
    // 采购员id，Int类型，用于唯一标识采购员的编号
    private int purchaserId;
    // 建单员，String类型，指创建采购单的人员姓名
    private String operator;
    // 建单员id，Int类型，用于唯一标识建单员的编号
    private int operatorId;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "create_time")
    private Date guanmaiCreateTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(name = "modify_time")
    private Date guanmaiModifyTime;

    private Integer pushErrorNum;
    private Integer isPush;
    private Date pushDate;


}